package com.lcc.lynx.base.system.pojo;

import lombok.Data;
import com.lcc.lynx.jdbc.pojo.TablePojo;
import com.lcc.lynx.jdbc.annotation.Table;
import com.lcc.lynx.jdbc.annotation.TableId;
import com.lcc.lynx.jdbc.annotation.FieldLabel;
import java.util.Date;
import com.lcc.lynx.jdbc.annotation.InsertRequired;
import java.util.List;

/** 
 * 菜单管理实体
 * @auth lcc
 * @date 2025-08-01
 */
@Data
@Table("sys_menu")
public class SysMenu extends TablePojo {

	/** menuId */
	@TableId
	@FieldLabel("menuId")
	private Long menuId;

	/** 父菜单id */
	@InsertRequired
	@FieldLabel("父菜单id")
	private Long pid;

	/** 菜单名称 */
	@InsertRequired
	@FieldLabel("菜单名称")
	private String name;

	/** 菜单路径 */
	@FieldLabel("菜单路径")
	private String path;

	/** 排序 */
	@FieldLabel("排序")
	private Short sort;

	/** 创建时间 */
	@FieldLabel("创建时间")
	private Date createTime;

	/** 菜单类型 */
	@InsertRequired
	@FieldLabel("菜单类型")
	private Short menuType;

	/** 状态 */
	@FieldLabel("状态")
	private Short state;

	/** 权限标识 */
	@FieldLabel("权限标识")
	private String permission;

	/** 图标 */
	@FieldLabel("图标")
	private String icon;

	/** 组件 */
	@FieldLabel("组件")
	private String component;

	/** 是否缓存 */
	@FieldLabel("是否缓存")
	private String ifCache;

	public void setMenuIdInList(List<Long> menuIdList){ put("menuIdInList", menuIdList); }
	public void setPidInList(List<Long> pidList){ put("pidInList", pidList); }
	public void setNameLike(String nameLike){ put("nameLike", nameLike); }
	public void setNameLikeL(String nameLikeL){ put("nameLikeL", nameLikeL); }
	public void setPathLike(String pathLike){ put("pathLike", pathLike); }
	public void setPathLikeL(String pathLikeL){ put("pathLikeL", pathLikeL); }
	public void setCreateTimeStart(String createTimeStart){ put("createTimeStart", createTimeStart); }
	public void setCreateTimeEnd(String createTimeEnd){ put("createTimeEnd", createTimeEnd); }
	public void setMenuTypeInList(List<Short> menuTypeList){ put("menuTypeInList", menuTypeList); }
	public void setStateInList(List<Short> stateList){ put("stateInList", stateList); }
}